package com.example.petshopping.ui.subscribe;

import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.example.petshopping.R;

/**
 * 订阅关键词页面
 */
public class SubscribeActivity extends AppCompatActivity {

    private LinearLayout defaultTagContainer;
    private LinearLayout customTagContainer;
    private TextView tvExpand;
    private Button btnAdd;
    
    // 定义按钮背景
    private GradientDrawable grayButtonBg;
    private GradientDrawable purpleButtonBg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_subscribe);

        // 初始化按钮背景
        initButtonBackgrounds();
        
        initViews();
        setListeners();
        setupTags();
        setupLastTagWithoutBorder();
    }
    
    /**
     * 初始化按钮背景
     */
    private void initButtonBackgrounds() {
        // 灰色按钮背景
        grayButtonBg = new GradientDrawable();
        grayButtonBg.setColor(Color.parseColor("#E7E7E7"));
        grayButtonBg.setCornerRadius(40); // 圆角大小
        
        // 紫色按钮背景
        purpleButtonBg = new GradientDrawable();
        purpleButtonBg.setColor(Color.parseColor("#8265F1"));
        purpleButtonBg.setCornerRadius(40); // 圆角大小
    }

    /**
     * 初始化视图
     */
    private void initViews() {
        defaultTagContainer = findViewById(R.id.default_tag_container);
        customTagContainer = findViewById(R.id.custom_tag_container);
        tvExpand = findViewById(R.id.tv_expand);
        btnAdd = findViewById(R.id.btn_add);

        findViewById(R.id.btn_back).setOnClickListener(v -> finish());
    }

    /**
     * 设置监听器
     */
    private void setListeners() {
        // 展开/收起按钮点击事件
        tvExpand.setOnClickListener(v -> {
            if (tvExpand.getText().toString().contains("展开")) {
                tvExpand.setText("收起 ▲");
                // 在此处可以添加展开更多标签的逻辑
            } else {
                tvExpand.setText("展开 ▼");
                // 在此处可以添加收起标签的逻辑
            }
        });

        // 添加按钮点击事件
        btnAdd.setOnClickListener(v -> {
            Toast.makeText(this, "添加自定义关键词", Toast.LENGTH_SHORT).show();
            // 这里可以弹出添加关键词的对话框
        });
    }

    /**
     * 设置标签数据和点击事件
     */
    private void setupTags() {
        // 设置默认订阅标签
        setupTagsInContainer(defaultTagContainer);
        
        // 设置自定义订阅标签
        setupTagsInContainer(customTagContainer);
    }
    
    /**
     * 为容器中的最后一个标签项移除底部边框
     */
    private void setupLastTagWithoutBorder() {
        // 处理默认订阅标签容器
        if (defaultTagContainer.getChildCount() > 0) {
            View lastDefaultTag = defaultTagContainer.getChildAt(defaultTagContainer.getChildCount() - 1);
            lastDefaultTag.setBackgroundResource(R.color.white);
        }
        
        // 处理自定义订阅标签容器
        if (customTagContainer.getChildCount() > 0) {
            View lastCustomTag = customTagContainer.getChildAt(customTagContainer.getChildCount() - 1);
            lastCustomTag.setBackgroundResource(R.color.white);
        }
    }

    /**
     * 为容器中的所有标签设置点击事件
     * @param container 标签容器
     */
    private void setupTagsInContainer(LinearLayout container) {
        int childCount = container.getChildCount();
        for (int i = 0; i < childCount; i++) {
            View tagView = container.getChildAt(i);
            
            // 检查是否为标签视图
            if (tagView != null) {
                Button btnSubscribe = tagView.findViewById(R.id.btn_subscribe);
                if (btnSubscribe != null) {
                    // 初始化按钮样式 - 使用自定义的圆角背景
                    btnSubscribe.setBackground(grayButtonBg);
                    btnSubscribe.setTextColor(Color.parseColor("#999999"));
                    btnSubscribe.setText("已订阅");
                    
                    // 设置订阅按钮点击事件
                    btnSubscribe.setOnClickListener(v -> {
                        Button btn = (Button) v;
                        if ("已订阅".equals(btn.getText().toString())) {
                            btn.setText("订阅");
                            btn.setBackground(purpleButtonBg);
                            btn.setTextColor(Color.WHITE);
                        } else {
                            btn.setText("已订阅");
                            btn.setBackground(grayButtonBg);
                            btn.setTextColor(Color.parseColor("#999999"));
                        }
                    });
                }
                
                // 在这里可以根据实际数据设置标签名称和数量
                // TextView tagName = tagView.findViewById(R.id.tv_tag_name);
                // TextView tagCount = tagView.findViewById(R.id.tv_tag_count);
                // tagName.setText("标签名称" + i);
                // tagCount.setText(i + "件上新");
            }
        }
    }
} 